package com.xidian.zhiancloud.controller.checkdanger;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.xidian.zhiancloud.controller.base.BaseController;
import com.xidian.zhiancloud.dto.ResultDTO;
import com.xidian.zhiancloud.enums.GeneralResponseEnums;
import com.xidian.zhiancloud.enums.UserResponseEnums;
import com.xidian.zhiancloud.model.checkdanger.ChkTypeData;
import com.xidian.zhiancloud.model.syset.SysUser;
import com.xidian.zhiancloud.qo.BaseReqQuery;
import com.xidian.zhiancloud.service.checkdanger.BaseSetService;

/**
 * 隐患排查基础类型设置
 */
@RestController
@RequestMapping("/checkdanger")
public class BaseSetController extends BaseController {

	@Autowired
	BaseSetService basesetService;
	
	
	/**
     *  -查询排查类型设置列表

	 * @param reqdata
	 * @param key     搜索关键字
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings("rawtypes")
	@RequestMapping(value = "/getBaseTypeSetList")
    public ResultDTO getBaseTypeSetList(BaseReqQuery reqdata,
    		@RequestParam(value="key",required=false ,defaultValue="") String key)
    {
		Page<Map<String,String>> pagedata = basesetService.getBaseTypeSetList(reqdata,key);
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("datalist", pagedata);
		data.put("PageNum", pagedata.getPageNum());
		data.put("PageSize", pagedata.getPageSize());
		data.put("PageTotal", pagedata.getPages());
		data.put("total", pagedata.getTotal());
		return ResultDTO.successOf(data, GeneralResponseEnums.SUCCESS);
    }
	
	/**
     *  -查询排查类型列表

	 * @param 无参数
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings("rawtypes")
	@RequestMapping(value = "/getBaseTypeList")
    public ResultDTO getBaseTypeList(BaseReqQuery reqdata)
    {
		Page<Map<String,String>> pagedata = basesetService.getBaseTypeList(reqdata);
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("datalist", pagedata);
		data.put("PageNum", pagedata.getPageNum());
		data.put("PageSize", pagedata.getPageSize());
		data.put("PageTotal", pagedata.getPages());
		data.put("total", pagedata.getTotal());
		return ResultDTO.successOf(data, GeneralResponseEnums.SUCCESS);
    }
	
	
	/**
     *  -新增排查类型设置

	 * @param chk_typeid // 新增 传送  -1  选择传送对应的ID
     * @param name 	//类型名称　　　新增的时候传送，选择仅仅传送ID就可以
	 * @param chk_times // 检查次数
     * @param chk_rate     //  频率   1，小时  2，日  3， 周    4， 月   5， 年
     * @param orglevelid  //  组织层级
     * @return 返回 ResultDTO 对象
     */
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/insertBaseTypeSet")
	public ResultDTO insertBaseTypeSet(Integer chk_typeid,Integer chk_times,Integer chk_rate,Integer orglevelid,
			@RequestParam(value="name",required=false ,defaultValue="") String name)
	{
		if(chk_typeid==-1&& !name.isEmpty())
		{
			ChkTypeData tpdata = new ChkTypeData();
			tpdata.setName(name);
			int rts = basesetService.insertBaseType(tpdata);
			if(rts<1)
			{
				return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
			}
			chk_typeid = tpdata.getId().intValue();
		}
		
		Map<String,Object> maps = new HashMap();
		maps.put("chk_typeid", chk_typeid);
		maps.put("chk_times", chk_times);
		maps.put("chk_rate", chk_rate);
		maps.put("orglevelid", orglevelid);
		
		int rt = basesetService.insertBaseTypeSet(maps);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -修改排查类型设置
	 * @param id 
	 * @param chk_typeid //  选择传送对应的ID
	 * @param chk_times // 检查次数
     * @param chk_rate     //  频率   1，小时  2，日  3， 周    4， 月   5， 年
     * @param orglevelid  //  组织层级
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/updateBaseTypeSet")
	public ResultDTO updateBaseTypeSet(Integer id,Integer chk_typeid,Integer chk_times,Integer chk_rate,Integer orglevelid)
	{
		Map<String,Object> maps = new HashMap();
		maps.put("id", id);
		maps.put("chk_typeid", chk_typeid);
		maps.put("chk_times", chk_times);
		maps.put("chk_rate", chk_rate);
		maps.put("orglevelid", orglevelid);
		
		int rt = basesetService.updateBaseTypeSet(maps);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -删除排查类型设置

	 * @param id //  选择传送对应的ID

     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/deleteBaseTypeSet")
	public ResultDTO deleteBaseTypeSet(Integer id)
	{
		
		int rt = basesetService.deleteBaseTypeSet(id);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	
	/**
     *  -查询类别设置列表

	 * @param reqdata
	 * @param key     搜索关键字
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings("rawtypes")
	@RequestMapping(value = "/getBaseTpsetList")
    public ResultDTO getBaseTpsetList(BaseReqQuery reqdata,
    		@RequestParam(value="key",required=false ,defaultValue="") String key)
    {
		Page<Map<String,String>> pagedata = basesetService.getBaseTpsetList(reqdata,key);
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("datalist", pagedata);
		data.put("PageNum", pagedata.getPageNum());
		data.put("PageSize", pagedata.getPageSize());
		data.put("PageTotal", pagedata.getPages());
		data.put("total", pagedata.getTotal());
		return ResultDTO.successOf(data, GeneralResponseEnums.SUCCESS);
    }
	
	
	/**
     *  -新增类型设置

     * @param name 	//类型名称　　　

     * @return 返回 ResultDTO 对象
     */
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/insertBaseTpSet")
	public ResultDTO insertBaseTpSet(String name)
	{
		
		Long userid = this.getSessionUserid();
		int rt = basesetService.insertBaseTpSet(name,userid.intValue());
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -修改类型设置

	 * @param id //  选择传送对应的ID
	 * @param name // 类型名称
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/updateBaseTpSet")
	public ResultDTO updateBaseTpSet(Integer id,String name)
	{
		
		int rt = basesetService.updateBaseTpSet(name,id);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -删除类型设置

	 * @param id //  选择传送对应的ID

     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/deleteBaseTpSet")
	public ResultDTO deleteBaseTpSet(Integer id)
	{
		
		int rt = basesetService.deleteBaseTpSet(id);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	

	/**
     *  -查询 基础管理类库

	 * @param reqdata
	 * @param key     搜索关键字
	 * 
	 *  - 返回字段 dangertypename // 风险点类型  dangerpoints 	// 风险点
	 *  localeid // 位置ID
     *   departid     //  管辖部门 ID
     *   screename  //  排查项目名称
     *   screencontent  //  排查内容与标准
     *   screenbasis  //  排查依据
     *   type  1,只能查看，  2，可以查看，修改，删除
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings("rawtypes")
	@RequestMapping(value = "/getBaseLibList")
    public ResultDTO getBaseLibList(BaseReqQuery reqdata,
    		@RequestParam(value="key",required=false ,defaultValue="") String key)
    {
		Page<Map<String,String>> pagedata = basesetService.getBaseLibList(reqdata,key);
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("datalist", pagedata);
		data.put("PageNum", pagedata.getPageNum());
		data.put("PageSize", pagedata.getPageSize());
		data.put("PageTotal", pagedata.getPages());
		data.put("total", pagedata.getTotal());
		return ResultDTO.successOf(data, GeneralResponseEnums.SUCCESS);
    }
	
	/**
     *  -新增 基础管理类库

	 * @param dangertypename // 风险点类型
     * @param dangerpoints 	// 风险点
	 * @param localeid // 位置ID
     * @param departid     //  管辖部门 ID
     * @param screename  //  排查项目名称
     * @param screencontent  //  排查内容与标准
     * @param screenbasis  //  排查依据
     * @return 返回 ResultDTO 对象
     */
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/insertBaseLib")
	public ResultDTO insertBaseLib(String dangertypename,String dangerpoints,Integer localeid,Integer departid,
			String screename,String screencontent,String screenbasis)
	{
		
		Map<String,Object> maps = new HashMap();
		maps.put("dangertypename", dangertypename);
		maps.put("dangerpoints", dangerpoints);
		maps.put("localeid", localeid);
		maps.put("departid", departid);
		maps.put("screename", screename);
		maps.put("screencontent", screencontent);
		maps.put("screenbasis", screenbasis);
		maps.put("userid", this.getSessionUserid());
		int rt = basesetService.insertBaseLib(maps);
		if(rt!=1)
		{
			return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -修改 基础管理类库

	 * @param dangertypename // 风险点类型
     * @param dangerpoints 	// 风险点
	 * @param localeid // 位置ID
     * @param departid     //  管辖部门 ID
     * @param screename  //  排查项目名称
     * @param screencontent  //  排查内容与标准
     * @param screenbasis  //  排查依据
     * @param id  //  记录ID
     * @return 返回 ResultDTO 对象
     */
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/updateBaseLib")
	public ResultDTO updateBaseLib(String dangertypename,String dangerpoints,Integer localeid,Integer departid,
			String screename,String screencontent,String screenbasis,Integer id)
	{
		
		Map<String,Object> maps = new HashMap();
		maps.put("dangertypename", dangertypename);
		maps.put("dangerpoints", dangerpoints);
		maps.put("localeid", localeid);
		maps.put("departid", departid);
		maps.put("screename", screename);
		maps.put("screencontent", screencontent);
		maps.put("screenbasis", screenbasis);
		maps.put("userid", this.getSessionUserid());
		maps.put("id", id);
		int rt = basesetService.updateBaseLib(maps);
		if(rt!=1)
		{
			//return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}
	
	/**
     *  -删除 基础管理类库

	 * @param id //  选择传送对应的ID
     * @return 返回 ResultDTO 对象
     */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping(value = "/deleteBaseLib")
	public ResultDTO deleteBaseLib(Integer id)
	{
		
		int rt = basesetService.deleteBaseLib(id);
		if(rt!=1)
		{
			//return ResultDTO.errorOf(UserResponseEnums.USER_PARAMETERS_ERROR);
		}
		return ResultDTO.successOf(GeneralResponseEnums.SUCCESS);
	}

}
